//package com.andooco.dataq.util;
//
//import org.apache.pdfbox.pdmodel.PDDocument;
//import org.apache.pdfbox.pdmodel.PDPage;
//import org.apache.pdfbox.rendering.PDFRenderer;
//import org.apache.pdfbox.text.PDFTextStripper;
//import org.fit.pdfdom.PDFDomTree;
//
//import javax.imageio.ImageIO;
//import java.awt.image.BufferedImage;
//import java.io.*;
//
///**
// * pdf 处理类
// * andooco 20201203
// */
//public class PdfUtil {
////
////    public void readPdfTextTest() throws IOException {
////        byte[] bytes = getBytes("D:\\code\\pdf\\HashMap.pdf");
////        //加载PDF文档
////        PDDocument document = PDDocument.load(bytes);
////        readText(document);
////    }
//
//    /**
//     * 读取pdf文字
//     *
//     * @param document
//     * @throws IOException
//     */
//    public void readText(PDDocument document) throws IOException {
//        PDFTextStripper stripper = new PDFTextStripper();
//        String text = stripper.getText(document);
//        System.out.println(text);
//    }
//
//    /**
//     * pdf转换html
//     */
//    public static void pdfToHtml(File file, String outputPath, String pageIndex) {
//        byte[] bytes = getBytes(file);
//        PDDocument documentTemp = new PDDocument();
////        try() 写在()里面会自动关闭流
//        try (BufferedWriter out = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(new File(outputPath)), "UTF-8"));) {
//            //加载PDF文档
//            PDDocument document = PDDocument.load(bytes);
//            //获取阅读到的那页
//            PDPage pdPage = document.getPage(Integer.parseInt(pageIndex));
//            //加载一页pdf
//            documentTemp.addPage(pdPage);
//            PDFDomTree pdfDomTree = new PDFDomTree();
//            //todo andooco 报错，排查不出来【且转换出来的html比原文件大太多，先不用此方案】
//            pdfDomTree.writeText(documentTemp, out);
//            document.close();
//            documentTemp.close();
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * pdf转png图片  dpi表示图片清晰度 200-300之间
//     *
//     * @param file
//     * @param outputPath
//     * @param pageIndex
//     * @return
//     */
//    public static void pdf2Image(File file, String outputPath, int pageIndex, float dpi) {
//        PDDocument pdDocument;
//        try {
//            pdDocument = PDDocument.load(file);
//            PDFRenderer renderer = new PDFRenderer(pdDocument);
//            /* dpi越大转换后越清晰，相对转换速度越慢 */
//            File dstFile = new File(outputPath);
//            //测试观察100清晰度足够，不够的话可以调整为200,300等，但是生成的照片会更占空间
//            BufferedImage image = renderer.renderImageWithDPI(pageIndex - 1, dpi);
//            ImageIO.write(image, "png", dstFile);
//            System.out.println("PDF文档转PNG图片成功！");
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//    /**
//     * 将文件转换为byte数组
//     *
//     * @param file
//     * @return
//     */
//    private static byte[] getBytes(File file) {
//        byte[] buffer = null;
//        try {
//            FileInputStream fis = new FileInputStream(file);
//            ByteArrayOutputStream bos = new ByteArrayOutputStream(1000);
//            byte[] b = new byte[1000];
//            int n;
//            while ((n = fis.read(b)) != -1) {
//                bos.write(b, 0, n);
//            }
//            fis.close();
//            bos.close();
//            buffer = bos.toByteArray();
//        } catch (FileNotFoundException e) {
//            e.printStackTrace();
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//        return buffer;
//    }
//
//    /**
//     * 获取pdf页数
//     *
//     * @param file
//     * @return
//     * @throws FileNotFoundException
//     * @throws IOException
//     */
//    public static int getPdfPages(File file) throws FileNotFoundException, IOException {
//        //加载PDF文档
//        PDDocument document = PDDocument.load(file);
//        int pages = document.getNumberOfPages();
//        System.out.println("pdf文件的总页数为:" + pages);
//        return pages;
//    }
//}
